home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swags_z.zip / TEXTWNDW.SWG / 0013_Small Window Unit.pas < prev    next >
Pascal/Delphi Source File  |  1994-05-26  |  3KB  |  179 lines

  1.  
  2. unit windows;
  3.  
  4. interface
  5. uses crt;
  6.  
  7. procedure sh;
  8. procedure sn;
  9. procedure Drawbox(x1,y1,x2,y2: byte);
  10. procedure PopWindow(x1,y1,x2,y2: byte);
  11. procedure CloseWindow;
  12. procedure Drawshadowbox(x1,y1,x2,y2: byte);
  13. procedure shh;
  14. procedure snn;
  15.  
  16. const
  17.  color: boolean = true;
  18.  
  19. type
  20.  windowtype = record
  21.                x1,x2,y1,y2: byte;
  22.                scrsave: array[1..4096] of byte;
  23.               end;
  24.  scrarray= array[1..4096] of byte;
  25.  scrptr= ^scrarray;
  26. const
  27.  screenbase: word =$B800;
  28. var
  29.  numwindows: byte;
  30.  ws: array[1..3] of windowtype;
  31.  cursorpos: integer;
  32.  fileabs: array[1..20] of word;
  33.  searchdir: byte;
  34.  searchwild: string;
  35.  searchdate: string;
  36.  searchuploader: string;
  37.  searchsize: longint;
  38.  searchtext: string;
  39.  numindex: word;
  40.  sortprimary,sortsecondary: byte;
  41.  filelow: longint;
  42.  numentries: byte;
  43.  
  44. procedure textcolor(i: byte);
  45. procedure textbackground(i: byte);
  46.  
  47. implementation
  48.  
  49. procedure Textcolor(i: byte);
  50. begin;
  51.  if color then crt.textcolor(i) else begin;
  52.   case i of
  53.     0: crt.textcolor(0);
  54.     7: crt.textcolor(7);
  55.    11..15: crt.textcolor(15);
  56.   end;
  57.  end;
  58. end;
  59.  
  60. procedure TextBackGround(i: byte);
  61. begin;
  62.  if color then crt.textbackground(i) else begin;
  63.   case i of
  64.    0..6: crt.textbackground(0);
  65.    7: crt.textbackground(7);
  66.   end;
  67.  end;
  68. end;
  69.  
  70. procedure sh;
  71. begin;
  72.  if color then begin;
  73.   textcolor(blue);
  74.   textbackground(7);
  75.  end else begin;
  76.   textcolor(0);
  77.   textbackground(7);
  78.  end;
  79. end;
  80.  
  81. procedure sn;
  82. begin;
  83.  textcolor(white);
  84.  textbackground(blue);
  85. end;
  86.  
  87. procedure Drawbox(x1,y1,x2,y2: byte);
  88. var
  89.  x,y: byte;
  90. begin;
  91.  gotoxy(x1,y1);
  92.  for x:=x1+1 to x2 do write('═');
  93.  gotoxy(x1,y2);
  94.  for x:=x1+1 to x2 do write('═');
  95.  for y:=y1+1 to y2-1 do begin;
  96.   gotoxy(x1,y);
  97.   write('│');
  98.   gotoxy(x2,y);
  99.   write('│');
  100.  end;
  101.  gotoxy(x1,y1);
  102.  write('╒');
  103.  gotoxy(x2,y1);
  104.  write('╕');
  105.  gotoxy(x1,y2);
  106.  write('╘');
  107.  gotoxy(x2,y2);
  108.  write('╛');
  109. end;
  110.  
  111. procedure PopWindow(x1,y1,x2,y2: byte);
  112. begin;
  113.  inc(numwindows);
  114.  ws[numwindows].x1:=lo(windmin)+1;
  115.  ws[numwindows].x2:=lo(windmax)+1;
  116.  ws[numwindows].y1:=hi(windmin)+1;
  117.  ws[numwindows].y2:=hi(windmax)+1;
  118.  move(mem[screenbase:0000],ws[numwindows].scrsave,4096);
  119.  window(1,1,80,25);
  120.  drawbox(x1,y1,x2,y2);
  121.  window(x1+1,y1+1,x2-1,y2-1);
  122. end;
  123.  
  124. procedure CloseWindow;
  125. begin;
  126.  move(ws[numwindows].scrsave,mem[screenbase:0000],4096);
  127.  window(ws[numwindows].x1,ws[numwindows].y1,ws[numwindows].x2,ws[numwindows].y2);
  128.  dec(numwindows);
  129. end;
  130.  
  131. procedure Drawshadowbox(x1,y1,x2,y2: byte);
  132. var
  133.  x,y: byte;
  134. begin;
  135.  textbackground(0);
  136.  textcolor(7);
  137.  gotoxy(x1,y1);
  138.  for x:=x1+1 to x2 do write('═');
  139.  gotoxy(x1,y2);
  140.  for x:=x1+1 to x2 do write('═');
  141.  for y:=y1+1 to y2-1 do begin;
  142.   gotoxy(x1,y);
  143.   write('│');
  144.   gotoxy(x2,y);
  145.   write('│');
  146.  end;
  147.  gotoxy(x1,y1);
  148.  write('╒');
  149.  gotoxy(x2,y1);
  150.  write('╕');
  151.  gotoxy(x1,y2);
  152.  write('╘');
  153.  gotoxy(x2,y2);
  154.  write('╛');
  155.  textcolor(7);
  156.  textbackground(0);
  157.  for y:=y1+1 to y2+1 do begin;
  158.   gotoxy(x2+1,y);
  159.   write(' ');
  160.  end;
  161.  for x:=x1+1 to x2+1 do begin;
  162.   gotoxy(x,y2+1);
  163.   write(' ');
  164.  end;
  165. end;
  166.  
  167. procedure shh;
  168. begin;
  169.  textcolor(0);
  170.  textbackground(7);
  171. end;
  172.  
  173. procedure snn;
  174. begin;
  175.  textcolor(7);
  176.  textbackground(0);
  177. end;
  178.  
  179. end.